home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Graphics Programming (2nd Edition) / Visual Basic Graphics Programming 2nd Edition.iso / Src / Ch11 / Circle1.frm (.txt) < prev    next >
Visual Basic Form  |  1999-06-12  |  4KB  |  135 lines

  1. VERSION 5.00
  2. Begin VB.Form frmCircle1 
  3.    Caption         =   "Circle1"
  4.    ClientHeight    =   5310
  5.    ClientLeft      =   2175
  6.    ClientTop       =   645
  7.    ClientWidth     =   4830
  8.    LinkTopic       =   "Form1"
  9.    PaletteMode     =   1  'UseZOrder
  10.    ScaleHeight     =   5310
  11.    ScaleWidth      =   4830
  12.    Begin VB.TextBox txtDt 
  13.       Height          =   285
  14.       Left            =   2160
  15.       TabIndex        =   6
  16.       Text            =   "0.1"
  17.       Top             =   45
  18.       Width           =   615
  19.    End
  20.    Begin VB.TextBox txtTmin 
  21.       Height          =   285
  22.       Left            =   0
  23.       TabIndex        =   4
  24.       Text            =   "0"
  25.       Top             =   45
  26.       Width           =   615
  27.    End
  28.    Begin VB.CommandButton cmdGo 
  29.       Caption         =   "Go"
  30.       Default         =   -1  'True
  31.       Height          =   375
  32.       Left            =   4200
  33.       TabIndex        =   3
  34.       Top             =   0
  35.       Width           =   615
  36.    End
  37.    Begin VB.TextBox txtTmax 
  38.       Height          =   285
  39.       Left            =   1200
  40.       TabIndex        =   2
  41.       Text            =   "6.2832"
  42.       Top             =   45
  43.       Width           =   615
  44.    End
  45.    Begin VB.PictureBox picCanvas 
  46.       AutoRedraw      =   -1  'True
  47.       Height          =   4815
  48.       Left            =   0
  49.       ScaleHeight     =   4755
  50.       ScaleWidth      =   4755
  51.       TabIndex        =   0
  52.       Top             =   480
  53.       Width           =   4815
  54.    End
  55.    Begin VB.Label Label1 
  56.       Caption         =   "dt"
  57.       Height          =   255
  58.       Index           =   1
  59.       Left            =   1920
  60.       TabIndex        =   5
  61.       Top             =   60
  62.       Width           =   255
  63.    End
  64.    Begin VB.Label Label1 
  65.       Caption         =   "<= t <="
  66.       Height          =   255
  67.       Index           =   0
  68.       Left            =   645
  69.       TabIndex        =   1
  70.       Top             =   60
  71.       Width           =   495
  72.    End
  73. Attribute VB_Name = "frmCircle1"
  74. Attribute VB_GlobalNameSpace = False
  75. Attribute VB_Creatable = False
  76. Attribute VB_PredeclaredId = True
  77. Attribute VB_Exposed = False
  78. Option Explicit
  79. Private Radius As Single
  80. ' Draw the curve on the indicated picture box.
  81. Private Sub DrawCurve(ByVal pic As PictureBox, ByVal start_t As Single, ByVal stop_t As Single, ByVal dt As Single)
  82. Dim cx As Single
  83. Dim cy As Single
  84. Dim t As Single
  85.     cx = pic.ScaleLeft + pic.ScaleWidth / 2
  86.     cy = pic.ScaleTop + pic.ScaleHeight / 2
  87.     pic.Cls
  88.     pic.CurrentX = cx + X(start_t)
  89.     pic.CurrentY = cy + Y(start_t)
  90.     t = start_t + dt
  91.     Do While t < stop_t
  92.         pic.Line -(cx + X(t), cy + Y(t))
  93.         t = t + dt
  94.     Loop
  95.     pic.Line -(cx + X(stop_t), cy + Y(stop_t))
  96. End Sub
  97. ' The parametric function Y(t).
  98. Private Function Y(ByVal t As Single) As Single
  99.     Y = Radius * Sin(t)
  100. End Function
  101. ' The parametric function X(t).
  102. Private Function X(ByVal t As Single) As Single
  103.     X = Radius * Cos(t)
  104. End Function
  105. Private Sub cmdGo_Click()
  106. Dim tmin As Single
  107. Dim tmax As Single
  108. Dim dt As Single
  109.     tmin = CSng(txtTmin.Text)
  110.     tmax = CSng(txtTmax.Text)
  111.     dt = CSng(txtDt.Text)
  112.     If picCanvas.ScaleWidth < picCanvas.ScaleHeight Then
  113.         Radius = picCanvas.ScaleWidth * 0.45
  114.     Else
  115.         Radius = picCanvas.ScaleHeight * 0.45
  116.     End If
  117.     DrawCurve picCanvas, tmin, tmax, dt
  118. End Sub
  119. Private Sub Form_Load()
  120. Const PI = 3.14159265
  121.     txtTmin.Text = Format$(0, "0.00")
  122.     txtTmax.Text = Format$(2 * PI, "0.00")
  123.     txtDt.Text = "0.1"
  124. End Sub
  125. Private Sub Form_Resize()
  126. Dim lft As Single
  127. Dim hgt As Single
  128.     lft = txtDt.Left + txtDt.Width
  129.     If lft < ScaleWidth - cmdGo.Width Then lft = ScaleWidth - cmdGo.Width
  130.     cmdGo.Left = lft
  131.     hgt = ScaleHeight - picCanvas.Top
  132.     If hgt < 120 Then hgt = 120
  133.     picCanvas.Move 0, picCanvas.Top, ScaleWidth, hgt
  134. End Sub
  135.